/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package org.ing.sisval.da;

import java.sql.Connection;
import java.util.ArrayList;
import org.ing.sisval.be.BEAsignacionDistribucion;
import org.rx.cr.dao.DAOAbstract;

/**
 *
 * @author Mysham
 */
public class DAAsignacionDistribucion extends DAOAbstract<BEAsignacionDistribucion> {

    public DAAsignacionDistribucion(Connection conn) {
        setConnection(conn);
    }

//    public DAAsignacionDistribucion(Connection coneccion) {
//        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
//    }
    @Override
    public int registrar(BEAsignacionDistribucion be) throws Exception {
        try {
            setStoreProcedure("SISVAL.sp_ins_asignaciondistribucion");
            setParameterInt(be.getDistribucionid());
            setParameterInt(be.getPropiedadid());
            setParameterString(be.getCantidad());
            return Integer.parseInt(commit().toString());
        } catch (Exception e) {
            return rollback(e);
        }
    }

    @Override
    public int actualizarRegistro(BEAsignacionDistribucion be) throws Exception {
        try {
            setStoreProcedure("SISVAL.sp_upd_asignaciondistribucion");
            setParameterInt(be.getAsignaciondistribucionid());
            setParameterInt(be.getDistribucionid());
            setParameterInt(be.getPropiedadid());
            setParameterString(be.getCantidad());
            return Integer.parseInt(commit().toString());
        } catch (Exception e) {
            return rollback(e);
        }
    }

    @Override
    public int eliminarRegistro(BEAsignacionDistribucion be) throws Exception {
        try {
            setStoreProcedure("SISVAL.sp_del_asignaciondistribucion");
            setParameterInt(be.getAsignaciondistribucionid());
            return Integer.parseInt(commit().toString());
        } catch (Exception e) {
            return rollback(e);
        }
    }

    @Override
    public ArrayList<BEAsignacionDistribucion> buscarReferencia(String string) throws Exception {
        try {
            clear();
            setStoreProcedure("SISVAL.sp_sel_asignaciondistribucion");
            setParameterString(string);
            commitc();
            while (existResult()) {
                BEAsignacionDistribucion be = new BEAsignacionDistribucion();
                be.setAsignaciondistribucionid(getDataInt(1));
                be.setDistribucionid(getDataInt(2));
                be.setPropiedadid(getDataInt(3));
                be.setCantidad(getDataString(3));

                add(be);
            }
            return getLista();
        } catch (Exception e) {
            rollback(e);
            return null;
        }
    }

    @Override
    public ArrayList<BEAsignacionDistribucion> listar() throws Exception {
        try {
            clear();
            setStoreProcedure("SISVAL.sp_sel_asignaciondistribucion");
            setParameterString("");
            commitc();
            while (existResult()) {
                BEAsignacionDistribucion be = new BEAsignacionDistribucion();
                be.setAsignaciondistribucionid(getDataInt(1));
                be.setDistribucionid(getDataInt(2));
                be.setPropiedadid(getDataInt(3));
                be.setCantidad(getDataString(3));

                add(be);
            }
            return getLista();
        } catch (Exception e) {
            rollback(e);
            return null;
        }
    }

    @Override
    public BEAsignacionDistribucion buscar(int i) throws Exception {
        try {
            BEAsignacionDistribucion be = null;
            setStoreProcedure("SISVAL.sp_sel_asignaciondistribucion");
            setParameterInt(i);
            commitc();
            while (existResult()) {
                be = new BEAsignacionDistribucion();
                be.setAsignaciondistribucionid(getDataInt(1));
                be.setDistribucionid(getDataInt(2));
                be.setPropiedadid(getDataInt(3));
                be.setCantidad(getDataString(3));

            }
            return be;
        } catch (Exception e) {
            rollback(e);
            return null;
        }
    }

    public int eliminarAsignacion(int distribucionId) throws Exception {
        try {
            setStoreProcedure("sp_del_asignaciondistribucion");
            setParameterInt(distribucionId);
            return Integer.parseInt(commit().toString());
        } catch (Exception e) {
            return rollback(e);
        }
    }

    public ArrayList<BEAsignacionDistribucion> listarAsignacion(int propiedadid) {
        try {
            clear();
            setStoreProcedure("sp_sel_asignacion_asignaciondistribucion");
            setParameterInt(propiedadid);
            commitc();
            while (existResult()) {
                BEAsignacionDistribucion be = new BEAsignacionDistribucion();
                be.setAsignaciondistribucionid(getDataInt(1));
                be.setDistribucionid(getDataInt(2));
                be.setPropiedadid(getDataInt(3));
                be.setCantidad(getDataString(4));

                add(be);
               
            }
            return getLista();

        } catch (Exception e) {
            try {
                rollback(e);
            } catch (Exception ex) {
            }
            return null;
        }
    }

//    public ArrayList<BEAsignacionDistribucion> listar(int id) throws Exception {
//        try {
//            clear();
//            setStoreProcedure("SISVAL.sp_sel_asignaciondistribucion");
//            setParameterInt(id);
//            commitc();
//            while (existResult()) {
//                BEAsignacionDistribucion be = new BEAsignacionDistribucion();
//                be.setAsignaciondistribucionid(getDataInt(1));
//                be.setDistribucionid(getDataInt(2));
//                be.setPropiedadid(getDataInt(3));
//                be.setCantidad(getDataString(4));
//
//                add(be);
//            }
//            return getLista();
//        } catch (Exception e) {
//            rollback(e);
//            return null;
//        }
//    }

}
